package com.crazymakercircle.mutithread.basic.create;

import com.crazymakercircle.util.Print;

import static com.crazymakercircle.util.ThreadUtil.getCurThreadName;

/**
 * Created by 尼恩@疯狂创客圈.
 */
public class CreateDemo {

    public static final int MAX_TURN = 5;

    static int threadNo = 1;

    /**
     * 通过前面的空线程例子可以看出，新线程如果需要并发执行自己的代码，需要做以下两件事情：
     * （1）需要继承Thread类，创建一个新的线程类。
     * （2）同时重写run()方法，将需要并发执行的业务代码编写在run()方法中。
     */
    static class DemoThread extends Thread {

        public DemoThread() {
            super("Mall-" + threadNo++);
        }

        @Override
        public void run() {
            for (int i = 1; i < MAX_TURN; i++) {
                Print.cfo(getName() + ", 轮次：" + i);
            }
            Print.cfo(getName() + " 运行结束.");
        }
    }

    public static void main(String args[]) throws InterruptedException {
        Thread thread = null;
        //方法一：使用Thread子类创建和启动线程
        for (int i = 0; i < 2; i++) {
            thread = new DemoThread();
            thread.start();
        }

        Print.cfo(getCurThreadName() + " 运行结束.");
    }
}